package collection;

import java.util.ArrayList;
import java.util.List;

/**
 * java.util.List集合
 * List集合可以保存重复元素，并且有序。提供了一套通过下标操作元素的方法。
 * 
 * 常用实现类:
 * java.util.ArrayList:内部由数组实现，查询性能更好
 * java.util.LinkedList:内部由链表实现，增删元素性能更好。
 * 如果不是对性能有特别苛刻要求下，一般都使用ArrayList
 * @author 范传奇
 *
 */
public class ListDemo {
	public static void main(String[] args) {
		
		List<String> list = new ArrayList<>();
		list.add("one");
		list.add("two");
		list.add("three");
		list.add("four");
		System.out.println(list);
		
		/*
		 * E get(int index)
		 * 获取指定下标处对应的元素
		 */
		//获取List集合中第三个元素
		String str = list.get(2);
		System.out.println(str);
		
		for(int i=0;i<list.size();i++) {
			str = list.get(i);
			System.out.println(str);
		}
		
		/*
		 * E set(int i,E e)
		 * 将给定元素设置到指定位置，返回值为原位置对应的元素(被替换的元素)。
		 */
		//[one,2,three,four]
		String old = list.set(1,"2");//指定的下标如果超范围会抛异常
		System.out.println(list);
		System.out.println(old);
		
		
		/*
		 * 重载的add方法:
		 * void add(int index,E e)
		 * 将给定元素插入到指定位置
		 */
		//[one,2,3,three,four]
		list.add(2,"3");
		System.out.println(list);
		
		/*
		 * 重载的remove方法
		 * E remove(int index)
		 * 删除并返回指定位置上的元素
		 */
		//[one,2,3,four]
		old = list.remove(3);
		System.out.println(list);
		System.out.println(old);//three
	}
}








